package clienteServidor.socket;

import java.io.IOException;
import java.net.ServerSocket;

import clienteServidor.DatosEquipo;
import clienteServidor.RespuestaServidor;
import clienteServidor.Servidor;
import clienteServidor.hilosServidor.HiloAceptarClientes;

public class ServidorSocketTCP {
	private int puerto;
	private ServerSocket servidorSocket;
	private Servidor servidor;
	//private boolean aceptarConexiones= true;
	
	private HiloAceptarClientes aceptarClientes;
	
	public ServidorSocketTCP(Servidor servidor, int puerto){
		this.puerto= puerto;
		this.servidor= servidor;
	}
	
	public void aceptarConexiones() throws IOException{	
		setServidorSocket(new ServerSocket(getPuerto()));
		
		aceptarClientes= new HiloAceptarClientes(this);		
		aceptarClientes.start();
	}
	
	public void cerrarConexiones() throws IOException{
		servidorSocket.close();	
	}
	
	public void agregarEstadoEquipo(DatosEquipo de) {
		servidor.agregarEstadoEquipo(de);		
	}

	public int getPuerto() {
		return puerto;
	}

	protected void setPuerto(int puerto) {
		this.puerto = puerto;
	}

	public ServerSocket getServidorSocket() {
		return servidorSocket;
	}

	protected void setServidorSocket(ServerSocket servidorSocket) {
		this.servidorSocket = servidorSocket;
	}

	protected Servidor getServidor() {
		return servidor;
	}

	protected void setServidor(Servidor servidor) {
		this.servidor = servidor;
	}

	public boolean isAceptarConexiones() {
		return servidor.isAceptarConexiones();
	}

	public boolean isContinuarEjecucion() {
		return servidor.isContinuarEjecucion();
	}

	public RespuestaServidor getRespuestaServidor() {
		return servidor.getRespuesta();
	}
	
}


